System Description Primer
System Components
This page lists the different system components that are documented in the remainder of the Concepts
section.
Data Structures
The core data structures are:
- Addresses: a registry for user account addresses.
- Blocks and block headers: top-level data structure.
- Deposits: deposits to Fuel from Ethereum.
- Inputs: transaction inputs.
- Metadata: point to state elements to consume.
- Outputs: transaction outputs.
- Roots and root headers: commit to a batch of transactions.
- Tokens: a registry for token addresses.
- Transactions: transactions.
- Withdrawals: withdrawals from Fuel to Ethereum.
- Witnesses: authorize transactions.
Verifiers
If a fraud proof is submitted to the contract, it first needs to be validated for correct formatting. This is required to ensure that a maliciously-constructed fraud proof can never be processed, otherwise a valid block could be reverted. Parsing fraud proofs is handled by verifiers.
Provers
Once a fraud proof has successfully been parsed by the appropriate verifier modules, it must be processed to prove that fraud occurred (or that the fraud proof is properly formatted but otherwise incorrect). This is handled by provers.
Additional Modules
Outside the core components above, additional optional modules are provided to e.g. improve UX and add more functionality:
- Token funnels: ephemeral contracts that accept token deposits without an
approve
step.